package com.hiultra.archive.mapper;


import com.hiultra.archive.domain.ArcBorrow;
import com.hiultra.archive.domain.ArcBorrowDetails;
import com.hiultra.archive.domain.ArcBorrowReturn;

import java.util.List;

/**
 * 借阅Mapper接口
 * 
 * @author ls
 * @date 2022-07-28
 */
public interface ArcBorrowMapper 
{
    /**
     * 查询借阅
     * 
     * @param borrowId 借阅主键
     * @return 借阅
     */
    public ArcBorrow selectArcBorrowByBorrowId(Long borrowId);

    /**
     * 查询借阅列表
     * 
     * @param arcBorrow 借阅
     * @return 借阅集合
     */
    public List<ArcBorrow> selectArcBorrowList(ArcBorrow arcBorrow);

    /**
     * 新增借阅
     * 
     * @param arcBorrow 借阅
     * @return 结果
     */
    public int insertArcBorrow(ArcBorrow arcBorrow);

    /**
     * 修改借阅
     * 
     * @param arcBorrow 借阅
     * @return 结果
     */
    public int updateArcBorrow(ArcBorrow arcBorrow);

    /**
     * 删除借阅
     * 
     * @param borrowId 借阅主键
     * @return 结果
     */
    public int deleteArcBorrowByBorrowId(Long borrowId);

    /**
     * 批量删除借阅
     * 
     * @param borrowIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArcBorrowByBorrowIds(Long[] borrowIds);

    /**
     * 批量删除借阅详情
     * 
     * @param borrowIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArcBorrowDetailsByBorrowIds(Long[] borrowIds);
    
    /**
     * 批量新增借阅详情
     * 
     * @param arcBorrowDetailsList 借阅详情列表
     * @return 结果
     */
    public int batchArcBorrowDetails(List<ArcBorrowDetails> arcBorrowDetailsList);
    

    /**
     * 通过借阅主键删除借阅详情信息
     * 
     * @param borrowId 借阅ID
     * @return 结果
     */
    public int deleteArcBorrowDetailsByBorrowId(Long borrowId);

    /**
     * 归还-批量更新归还状态
     */
    public int returnArcBorrowDetails(List<Long> arcBorrowDetailIds);

    /**
     * 归还-借阅单
     * @param arcBorrowReturn
     * @return
     */
    public int returnArcBorrow(ArcBorrowReturn arcBorrowReturn);
}
